package org.czl.gh;

import java.util.Arrays;

public class l2601 {
    public static void main(String[] args) {
        System.out.println(primeSubOperation(new int[]{5,8,3}));
    }
    public static boolean primeSubOperation(int[] nums) {
        boolean[] prime = new boolean[1001];
        Arrays.fill(prime, true);
        for(int i = 2; i * i < 1001; i++){
            if(prime[i]){
                for(int j = i * i; j < 1001; j += i){
                    prime[j] = false;
                }
            }
        }
        int n = nums.length;
        for(int i = nums[0]; i >= 2; i--){
            if(prime[i]){
                nums[0] = nums[0] - i;
                break;
            }
        }
        for(int i = 1; i < n; i++){
            int ret = nums[i];
            for(int j = ret; j >= 2; j--){
                if(prime[j]){
                    if(nums[i] - j > nums[i - 1]){
                        nums[i] = nums[i] - j;
                        break;
                    }
                }
            }
            if(nums[i] <= nums[i - 1]){
                return false;
            }
        }
        return true;
    }
}
